# 数据分析题目解答(建议先赞后看，养成习惯 如果不赞，先拉出去枪毙两分钟 作者：小匠IT)
import pandas as pd
import os

# 输入数据
data = {
    '统计日期': [44621, 44622, 44623, 44624, 44625, 44626, 44627, 44628],
    '终端类型': ['无线端'] * 8,
    '流量来源': ['付费流量'] * 8,
    '来源明细': ['汇总'] * 8,
    '访客数': [255, 199, 159, 176, 161, 162, 186, 160],
    '下单买家数': [11, 11, 4, 8, 14, 2, 7, 7],
    '下单转化率': [4.31, 5.53, 2.52, 4.55, 8.70, 1.23, 3.76, 4.38]
}

df = pd.DataFrame(data)

# 将统计日期转换为实际日期（假设44621对应于3月1日）
start_date = pd.to_datetime('2024-03-01')
df['统计日期'] = pd.to_timedelta(df['统计日期'] - 44621, unit='D') + start_date

# 计算访客数和下单转化率的环比增长率
df['访客数环比增长率'] = df['访客数'].pct_change().fillna(0).round(4) * 100
df['下单转化率环比增长率'] = df['下单转化率'].pct_change().fillna(0).round(4) * 100

# 识别异常值：环比前一日的数据下降超过20%
abnormal_visitors = df[df['访客数环比增长率'] < -20]['统计日期'].tolist()
abnormal_conversion_rate = df[df['下单转化率环比增长率'] < -20]['统计日期'].tolist()

if abnormal_visitors:
    print(f"访客数在以下日期出现了异常：{', '.join([date.strftime('%Y-%m-%d') for date in abnormal_visitors])}")
else:
    print("访客数没有出现异常。")

if abnormal_conversion_rate:
    print(f"下单转化率在以下日期出现了异常：{', '.join([date.strftime('%Y-%m-%d') for date in abnormal_conversion_rate])}")
else:
    print("下单转化率没有出现异常。")

# 输出结果到文件
output_folder = r'output/45'
os.makedirs(output_folder, exist_ok=True)
output_excel_file = os.path.join(output_folder, '访客数及下单转化率数据.xlsx')

with pd.ExcelWriter(output_excel_file, engine='xlsxwriter') as writer:
    df.to_excel(writer, sheet_name='数据', index=False)

print(f"\n包含分析结果的新 Excel 文件已保存到 {output_excel_file}")

# 简答题：店铺整体的转化率不高，请说明可能的原因，并给出解决办法
reasons_and_solutions = (
    "1. **广告投放不够精准**：如果广告没有针对合适的受众群体或展示在不恰当的时间段，可能会导致点击率低和转化率不高。\n"
    "   解决办法：优化广告定位，使用更精细的用户画像和行为数据分析，确保广告能够触达最有可能购买的潜在客户。\n\n"
    "2. **网站用户体验不佳**：如果网站加载速度慢、导航不清晰或者页面设计不利于引导用户完成购买流程，都会影响转化率。\n"
    "   解决办法：优化网站性能，简化购物流程，提高页面加载速度，确保网站设计直观且易于操作。\n\n"
    "3. **促销活动缺乏吸引力**：如果没有足够的优惠或促销活动来吸引顾客下单，也可能导致转化率不高。\n"
    "   解决办法：定期推出限时折扣、满减活动或赠品等促销手段，增加用户的购买动力。\n\n"
    "4. **产品描述和图片不足**：如果产品描述不够详细或图片质量不高，用户可能无法获得足够的信息来做出购买决定。\n"
    "   解决办法：提供高质量的产品图片，详细的产品描述，包括尺寸、颜色、功能等关键信息，帮助用户更好地了解产品。\n"
)

print(reasons_and_solutions)